10 ' minor mods to run on the EGA by Robert Beckley
20 ' original written for the Tandy 2000 640x400 8 colors
1000 CLEAR, ,1024
1010 DEFINT A-Z
1020 KEY OFF:SCREEN 1:LOCATE 9,10:PRINT"* * COSMIC EYES * *":LOCATE 15,11:PRINT"Lance E. Strickler":LOCATE 17,11:PRINT"Copyright 04JAN84":FOR I=0 TO 9999:NEXT
1030 SCREEN 9
1040 PALETTE 1,4:PALETTE 2,3:PALETTE 3,1:PALETTE 4,5:PALETTE 5,12:PALETTE 6,9:PALETTE 7,7 ' set the "key"
1050 RANDOMIZE (12345) ' set the "timbre"
1060 S = 3:C = 3:R = 120:K = 23 ' force initial shape, size and color
1070 ON K GOSUB 1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1380
1080 S = FIX(RND*7)+2:C = FIX(RND*16):R = FIX(RND*101)+74:K = FIX(RND*30)+1
1090 LINE (1,1)-(639,349),C,B:GOTO 1070
1100 LINE (1,1)-(639,349),C,BF:RETURN ' fill the screen with color
1110 FOR I = 1 TO 319 STEP S:LINE (I+319,1)-(I+319,349),C:LINE (321-I,349)-(321-I,1),C:NEXT I:RETURN ' vertical lines with variable space - force black
1120 FOR I = 1 TO 174 STEP S:LINE (1,174+I)-(639,174+I),0:LINE (639,176-I)-(1,176-I),0:NEXT I:RETURN ' horizontal lines with variable space - force black
1130 FOR I = 1 TO 319 STEP S:LINE (I+319,1)-(I+319,349),C:LINE (321-I,349)-(321-I,1),C:NEXT I:RETURN ' vertical lines with variable space
1140 FOR I = 1 TO 174 STEP S:LINE (I*1.8286,1)-(640-I*1.8286,I),C,B:LINE (I*1.8286,349)-(640-I*1.8286,350-I),C,B:NEXT I:RETURN ' boxes from top and bottom to angles
1150 FOR I = 1 TO 349 STEP S+1:LINE (I*1.8286,1)-(639,I),C:LINE -(640-I*1.8286,349),C:LINE -(1,350-I),C:LINE -(I*1.8286,1),C:NEXT I:RETURN ' top to right to bottom to left to top
1160 FOR I = 1 TO 349 STEP S:LINE (639,I)-(320,I/2+.5),C:LINE -(1,I),C:LINE (1,350-I)-(320,349.5-I/2),C:LINE -(639,350-I),C:NEXT I:RETURN ' horiz. angled lines
1170 FOR I = 1 TO 639 STEP S:LINE (I,349)-(I/2+.5,175),C:LINE -(I,1),C:LINE (640-I,1)-(639.5-I/2,175),C:LINE -(640-I,349),C:NEXT I:RETURN ' vert. angled lines
1180 FOR I = 1 TO R STEP S:CIRCLE (320,175),I,C,,,1:NEXT I:RETURN ' circle
1190 FOR I = 1 TO R+175 STEP S:LINE (639,350-I)-(1,I),0:LINE (1,350-I)-(639,I),0:CIRCLE (320,175),I/2,C,,,1:NEXT I:RETURN ' black "eye"
1200 FOR I = 1 TO 320 STEP S:LINE (321-I,1)-(319+I,349),C:LINE (321-I,349)-(319+I,1),C:NEXT I:RETURN ' top X bottom
1210 FOR I = 1 TO 174 STEP S:LINE (1,176-I)-(639,174+I),C:LINE (639,176-I)-(1,174+I),C:NEXT I:RETURN ' left X right
1220 FOR I = 1 TO R STEP S:CIRCLE (320,175),I,0,,,1:NEXT I:RETURN ' circle - force black
1230 FOR I = 2 TO R+174 STEP S:LINE (I,1)-(640-I,349),C:LINE (639,350-I)-(1,I),C:LINE (640-I,1)-(I,349),C:LINE (1,350-I)-(639,I),C:CIRCLE (320,175),I/2,0,,,1:CIRCLE (320,175),(176-I+R)/2,0,,,1:NEXT I:RETURN ' circle X "eye"
1240 FOR I = 175-R TO 175+R STEP S:LINE (120+I,175-R)-(320+R,I),C:LINE -(520-I,175+R),C:LINE -(320-R,350-I),C:LINE -(120+I,175-R),C:NEXT I:RETURN ' spin box
1250 FOR I = 1 TO 350-R STEP S:CIRCLE (1,175),I,C,4.72,1.57,R/250:CIRCLE (639,175),I,C,1.57,4.72,R/250:NEXT I:RETURN ' half elipses from the sides
1260 FOR I = 174 TO 320 STEP S+1:CIRCLE (I,175),R,C,,,1:CIRCLE (640-I,175),R,C,,,1:NEXT I:RETURN ' two traveling circles
1270 FOR I = 1 TO 349 STEP S:LINE (639,I)-(1,175),C:LINE (1,350-I)-(639,175),C:NEXT I:RETURN ' center of sides to the opposite borders
1280 FOR I = 1 TO 639 STEP S:LINE (I,349)-(320,1),C:LINE (640-I,1)-(320,349),C:NEXT I:RETURN ' center of the top and bottom to their opposites
1290 FOR I = 1 TO 174 STEP 2:LINE (440+I,175+I)-(200-I,175-I),0,B:NEXT I:RETURN ' box - force black - force small steps
1300 R=1:FOR I = 1 TO 349 STEP S:LINE (320,349)-(1,I),C:LINE -(320,1),C:LINE (1,1)-(320,350-I),C:LINE (320,349)-(639,I),C:LINE -(320,1),C:LINE (639,1)-(320,350-I),C:CIRCLE (320,I/2),R,0,,,1:R=R+2:NEXT I:RETURN ' circle vee
1310 FOR I = 1 TO 174 STEP S:LINE (1,350-I)-(I*1.8286,I),C,B:LINE (639,I)-(640-I*1.8286,350-I),C,B:NEXT I:RETURN ' boxes from sides to angles
1320 FOR I = 1 TO 350-R STEP S:CIRCLE (320,175),I,C,,,R/I:NEXT I:RETURN ' elipse that grows
1330 FOR I = 1 TO 317 STEP 4:LINE (I+319,1)-(I+321,349),0,B:LINE (321-I,349)-(319-I,1),0,B:NEXT I:RETURN ' vertical lines - force small step - force black
1340 FOR I = 1 TO 197 STEP 4:LINE (1,174+I)-(639,176+I),0,B:LINE (639,176-I)-(1,174-I),0,B:NEXT I:RETURN ' horizontal lines - force small step - force black
1350 FOR I = 0 TO 174 STEP S:LINE (639,175-I)-(1,175+I),C:LINE (1,175-I)-(639,175+I),C:LINE (320+1.8286*I,1)-(320-1.8286*I,349),C:LINE (320+1.8286*I,349)-(320-1.8286*I,1),C:NEXT I:RETURN ' full X
1360 FOR I = R-99 TO 175+R STEP S:LINE (40+I,175-R)-(320+R,I),C:LINE -(600-I,175+R),C:LINE -(320-R,350-I),C:LINE -(40+I,175-R),C:NEXT I:RETURN ' spin 4-gon
1370 FOR I = 1 TO R+175 STEP S:LINE (639,350-I)-(1,I),C:LINE (1,350-I)-(639,I),C:CIRCLE (320,175),I/2,C+1,,,1:NEXT I:RETURN ' two color "eye"
1380 FOR I = 312 TO 337:LINE (RND*4+520,I)-(RND*5+575,I),7:NEXT I:RESTORE:READ X ' place a background
1390 WHILE X:READ Y:PSET (500+X,255+Y),4:READ X:WEND:PALETTE 7,15:PALETTE 7,7:RESTORE:READ X ' sign it with a flash
1400 WHILE X:READ Y:PSET (500+X,255+Y),5:READ X:WEND:PALETTE 7,15:PALETTE 7,7:RESTORE:READ X ' again in red
1410 WHILE X:READ Y:PSET (500+X,255+Y),6:READ X:WEND:PALETTE 7,15:PALETTE 7,7:RETURN ' again in blue
1420 DATA 40,61,39,62,38,63,38,64,39,65,40,65,41,66,42,66,43,66,44,66,45,66,46,65,47,65,48,65,49,64,50,64,51,63,51,62,50,61,49,60,48,60,47,60,46,61,45,61,44,62,44,63,43,64,43,65,42,67,41,68,41,69,40,70
1430 DATA 39,71,38,72,37,73,36,74,35,75,34,76,33,77,32,77,31,77,30,76,30,75,30,74,31,73,32,72,33,71,34,70,35,70,36,70,37,70,38,71,39,72,40,73,40,74,41,75,41,76,42,77,43,78,44,78,45,79,46,79,47,79,48,79,49,79
1440 DATA 50,79,51,79,51,79,52,79,53,79,54,79,55,79,56,79,57,79,58,79,59,79
1450 DATA 47,72,46,72,45,73,44,74,44,75,45,75,45,75,46,75,47,74,48,74,49,73,49,74,49,75,50,75,51,74,52,73,53,72,53,73,53,74,53,75,54,74,55,73,56,72,56,73,56,74,56,75,57,75,58,74,59,74,60,73,61,73,62,72,63,72,60,74
1460 DATA 60,75,61,75,62,75,63,73,64,75,65,75,66,74,67,74,68,73,68,72,67,72,66,73,65,74,64,76,64,77,65,78,66,79,0,0